#!/bin/bash

# 扫描脚本文件夹,按编号生成用例列表
echo "用例列表："
for i in $(ls ./scripts)
do  # 截取左边${string%chars*} 截取右边 ${string#*chars}
	case_list[j]=${i%.*}
	#echo -e "\e[32m 	$[$j+1] ${i%.*} \e[0m"

	export jmx_template=${i%.*}
	export suffix=".jmx"
	export jmx_template_filename="${jmx_template}${suffix}"
	export os_type=`uname`
	export data=`date +%H%M%S%Y%m%d`

	echo "自动化压测准备......"

	# 配置测试环境, 选择测试模式

  # 生成对应压测线程的jmx文件
  export jmx_filename="${jmx_template}_${num_threads}${suffix}"
  export jtl_filename="test_${num_threads}.jtl"
  export web_report_path_name="${jmx_template}_${num_threads}"
  # 清除旧数据
  rm -f testcases/${jmx_filename} results/data/${jtl_filename}
  rm -rf results/reports/${web_report_path_name}
  # 复制并重新命名得到执行脚本文件jmx
  cp scripts/${jmx_template_filename} testcases/${jmx_filename}
  echo "测试环境${testEnv}, 测试模式${testMode}"
  # 判断执行的操作系统,sed替换做参数化:sed -i -e 's/x.*x/x${var1}x/' -e 's/x.*x/x${var2}x/' filename或path/filename
  # -i --in-place 原地直接替换 -e --expression script 可以用多个-e ,注会替换所有匹配到的地方,所以多个线程组会统一被修改
  if [[ "${testEnv}" == "FAT" ]]; then
    sed -i -e "" 's/testname="测试环境DEV" enabled="false">/testname="测试环境FAT" enabled="true">/' testcases/${jmx_filename}
  elif [[ "${testEnv}" == "DEV" ]]; then
    sed -i -e "" 's/testname="测试环境DEV" enabled="false">/testname="测试环境DEV" enabled="true">/' testcases/${jmx_filename}
  elif [[ "${testEnv}" == "UAT" ]]; then
    sed -i -e "" 's/testname="测试环境DEV" enabled="false">/testname="测试环境UAT" enabled="true">/' testcases/${jmx_filename}
  elif [[ "${testEnv}" == "PRO" ]]; then
    sed -i -e "" 's/testname="测试环境DEV" enabled="false">/testname="测试环境PRO" enabled="true">/' testcases/${jmx_filename}
  else
    echo "${testEnv}不存在,请选择其它测试环境！"
  echo "自动化压测开始......"
done
#
#		#read -p "请选择测试用例：" input
#		fi
#
#		# JMeter 静默压测
#		#${jmeter_path}/bin/jmeter -n -t testcases/${jmx_filename} -l results/data/${jtl_filename}
#		jmeter -n -t testcases/${jmx_filename} -l results/data/${jtl_filename}
#
#		# 生成Web压测报告
#		#${jmeter_path}/bin/jmeter -g results/data/${jtl_filename} -e -o results/reports/${web_report_path_name}
#		jmeter -g results/data/${jtl_filename} -e -o results/reports/${web_report_path_name}
#		# 删除测试用例
#		#rm -f testcases/${jmx_filename} results/data/${jtl_filename}
